home *** CD-ROM | disk | FTP | other *** search
- package sun.tools.tree;
-
- import java.util.Hashtable;
- import sun.tools.asm.Assembler;
- import sun.tools.java.Environment;
- import sun.tools.java.Type;
-
- public abstract class BinaryBitExpression extends BinaryExpression {
- public BinaryBitExpression(int var1, int var2, Expression var3, Expression var4) {
- super(var1, var2, var3.type, var3, var4);
- }
-
- void selectType(Environment var1, Context var2, int var3) {
- if ((var3 & 1) != 0) {
- super.type = Type.tBoolean;
- } else if ((var3 & 32) != 0) {
- super.type = Type.tLong;
- } else {
- super.type = Type.tInt;
- }
-
- super.left = ((Node)this).convert(var1, var2, super.type, super.left);
- super.right = ((Node)this).convert(var1, var2, super.type, super.right);
- }
-
- public void checkCondition(Environment var1, Context var2, long var3, Hashtable var5, ConditionVars var6) {
- super.left.checkCondition(var1, var2, var3, var5, var6);
- super.left = ((Node)this).convert(var1, var2, Type.tBoolean, super.left);
- long var7 = var6.vsTrue;
- long var9 = var6.vsFalse;
- super.right.checkCondition(var1, var2, var7 & var9, var5, var6);
- super.right = ((Node)this).convert(var1, var2, Type.tBoolean, super.right);
- super.type = Type.tBoolean;
- this.setBitCondition(var7, var9, var6);
- }
-
- abstract void setBitCondition(long var1, long var3, ConditionVars var5);
-
- public void codeValue(Environment var1, Context var2, Assembler var3) {
- super.left.codeValue(var1, var2, var3);
- super.right.codeValue(var1, var2, var3);
- ((BinaryExpression)this).codeOperation(var1, var2, var3);
- }
- }
-